package practice1_100;

public class Practice82 {
    public ListNode deleteDuplicates(ListNode head) {
        if(head==null) return  head;
        ListNode falseHead=new ListNode(0);
        falseHead.next=head;
        ListNode headTemp=head,rearTemp=head.next,headhead=falseHead;
        while (rearTemp!=null){
            if(rearTemp.val==headTemp.val){//找到相等的节点
                rearTemp=rearTemp.next;
            }else {
                if(headTemp.next==rearTemp){
                    headhead=headTemp;
                    headTemp=rearTemp;
                    rearTemp=rearTemp.next;
                }else {
                    headhead.next=rearTemp;
                    headTemp=rearTemp;
                    rearTemp=rearTemp.next;
                }
            }
        }
        //这里有点小问题，就是最后有相同的结果时候，不会删除相同的数字，所以我们可以单独拎出来处理
        if(headTemp.next!=null) headhead.next=null;
        return  falseHead.next;
    }

    public static void main(String[] args) {
        System.out.println(null==null);
        ListNode a= new Practice82().deleteDuplicates(new ListNode(2,new ListNode(6,new ListNode(6,new ListNode(6)))));
        System.out.println(a);
    }
}
